﻿/*****************************************************************//**
 * \file   check.h
 * \brief  一些校验函数
 * 
 * \author CaiYunWei
 * \date   September 2024
 *********************************************************************/
#pragma once


#ifdef __cplusplus
extern "C" {
#endif


#include "memxx_supplement.h"


/**
* 得到8位加法校验和.
*
* \param pStart 数据起始地址
* \param count 数据数量
* \param pResult 结果保存位置
*/
void additionChecksum_8BIT(const void* pStart, size_t count, void* pResult);



/**
 * @brief 大佬的CRC校验
 * @param pStart 数据起始地址
 * @param count 数据数量
 * @param pResult 结果保存位置
*/
void bigCRC_8(const void* pStart, size_t count, void* pResult);


void binPrintf(uint8_t binData);

/**
 * 左移一位并补充最后一位的数据.
 *
 * \param D_now 当前字节指针
 * \param D_next 下一字节
 * \param i 序号
 * \note 在循环中使用
 */
void left_and_supply(uint8_t* crc, uint8_t data, int i);

/**
 * @brief CRC校验
 * @param pStart 数据起始地址
 * @param count 数据数量
 * @param pResult 结果保存位置
*/
void CRC_8(const void* pStart, size_t count, void* pResult);

#ifdef __cplusplus
}
#endif


